mir: add default GdkSeat for the default GdkDisplay
authorWilliam Hua <william.hua@canonical.com>
Fri, 15 Jan 2016 19:09:33 +0000 (14:09 -0500)
committerWilliam Hua <william.hua@canonical.com>
Fri, 15 Jan 2016 19:10:53 +0000 (14:10 -0500)
gdk/mir/gdkmirdevicemanager.c

index c94f8a3ded54d456ba1271e13f34f3510e88aefe..a4c38a90307930750da51737807f292ece07450c 100644 (file)
@@ -20,6 +20,7 @@
 #include "gdkdevicemanagerprivate.h"
 #include "gdkdisplayprivate.h"
 #include "gdkdeviceprivate.h"
+#include "gdkseatdefaultprivate.h"
 
 #include "gdkmir.h"
 #include "gdkmir-private.h"
@@ -97,13 +98,20 @@ static void
 gdk_mir_device_manager_constructed (GObject *object)
 {
   GdkMirDeviceManager *device_manager = GDK_MIR_DEVICE_MANAGER (object);
+  GdkDisplay *display;
+  GdkSeat *seat;
 
   device_manager->keyboard = _gdk_mir_keyboard_new (GDK_DEVICE_MANAGER (device_manager), "Mir Keyboard");
   device_manager->pointer = _gdk_mir_pointer_new (GDK_DEVICE_MANAGER (device_manager), "Mir Pointer");
   _gdk_device_set_associated_device (device_manager->keyboard, device_manager->pointer);
   _gdk_device_set_associated_device (device_manager->pointer, device_manager->keyboard);
 
-  gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager))->core_pointer = device_manager->pointer;
+  display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager));
+  display->core_pointer = device_manager->pointer;
+
+  seat = gdk_seat_default_new_for_master_pair (device_manager->pointer, device_manager->keyboard);
+  gdk_display_add_seat (display, seat);
+  g_object_unref (seat);
 
   G_OBJECT_CLASS (gdk_mir_device_manager_parent_class)->constructed (object);
 }